export interface SendResourceTask {
    /**
     * 任务 id
     */
    id: string
    /**
     * 目标房间
     */
    roomName: string
    /**
     * 资源类型
     */
    type: ResourceConstant
    /**
     * 需要发送的数量
     */
    amount: number
    /**
     * 等待时间，过一段时间再执行，比如仓库能量不够，需要等一会
     */
    waitTime?: number
    /**
     * 过期时间，到期后会自动取消任务
     */
    timeout?: number
}

export interface SellResourceTask {
    /**
     * 任务 id
     */
    id: string
    /**
     * 资源类型
     */
    type: ResourceConstant
    /**
     * 需要出售的数量
     */
    amount: number
    /**
     * 出售方式，deal（默认） 或者 order（挂单）
     */
    method?: 'deal'
    /**
     * 挂单时的最低价格
     */
    minOrderPrice?: number
    /**
     * deal 时的最低价格
     */
    minDealPrice?: number
    /**
     * 过期时间，到期后会自动取消任务
     */
    timeout?: number
}

export interface ResourceMemory {
    /**
     * 发送资源任务队列
     */
    sendTasks: SendResourceTask[]
    /**
     * 出售资源任务队列
     */
    sellTasks: SellResourceTask[]
}

declare global {
    interface RoomMemory {
        resource: ResourceMemory
    }

    interface Game {
        /**
         * 有空闲空间的房间
         */
        _freeSpaceRooms: MyRoom[]
    }
}
